#include "main.h"
#include "system.h"

void  ALLGPIO_Initial(void)
{

  	GPIO_InitTypeDef GPIO_InitStruct = {0};

  
		__HAL_RCC_GPIOA_CLK_ENABLE();
   		__HAL_RCC_GPIOB_CLK_ENABLE();
    	__HAL_RCC_GPIOC_CLK_ENABLE();


	/*GPIO_InitStruct.Pin   = MCU_POWKEY_PIN;
	GPIO_InitStruct.Mode  = GPIO_MODE_OUTPUT_PP;
	GPIO_InitStruct.Pull  = GPIO_NOPULL;
	GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
	HAL_GPIO_Init(MCU_POWKEY_PORT, &GPIO_InitStruct);

	GPIO_InitStruct.Pin   = MCU_RESET_PIN;
	GPIO_InitStruct.Mode  = GPIO_MODE_OUTPUT_PP;
	GPIO_InitStruct.Pull  = GPIO_NOPULL;
	GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
	HAL_GPIO_Init(MCU_RESET_PORT, &GPIO_InitStruct);

	GPIO_InitStruct.Pin   = NB_PW_EN_PIN;
	GPIO_InitStruct.Mode  = GPIO_MODE_OUTPUT_PP;
	GPIO_InitStruct.Pull  = GPIO_NOPULL;
	GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
	HAL_GPIO_Init(NB_PW_EN_PORT, &GPIO_InitStruct);
	NB_PW_Disable;*/



	GPIO_InitStruct.Pin   = Led0_PIN;
	GPIO_InitStruct.Mode  = GPIO_MODE_OUTPUT_PP;
	GPIO_InitStruct.Pull  = GPIO_NOPULL;
	GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
	HAL_GPIO_Init(Led0_PORT, &GPIO_InitStruct);
	Led0_OFF;
	GPIO_InitStruct.Pin   = Led1_PIN;
	GPIO_InitStruct.Mode  = GPIO_MODE_OUTPUT_PP;
	GPIO_InitStruct.Pull  = GPIO_NOPULL;
	GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
	HAL_GPIO_Init(Led1_PORT, &GPIO_InitStruct);
	Led1_OFF;
  
}


void BC26HardwareReset(void)
{
	GPIO_InitTypeDef GPIO_InitStruct = {0};
	NB_PW_Disable;	
	
	BC26_Reset_Low;
	BC26_POWKEY_Low;
	GPIO_InitStruct.Pin 	= 	BC26_TX_Pin|BC26_RX_Pin;
	GPIO_InitStruct.Mode 	= 	GPIO_MODE_OUTPUT_PP;
	GPIO_InitStruct.Speed 	= 	GPIO_SPEED_FREQ_LOW;
	HAL_GPIO_Init(BC26_UART_Port,&GPIO_InitStruct);
	BC26_TXPIN_Low;
	BC26_RXPIN_Low;

	HAL_Delay(1500);
	NB_PW_Enable;
	
    GPIO_InitStruct.Pin = BC26_TX_Pin | BC26_RX_Pin;
    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
    GPIO_InitStruct.Pull = GPIO_NOPULL;
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
    GPIO_InitStruct.Alternate = GPIO_AF1_USART1;
    HAL_GPIO_Init(BC26_UART_Port, &GPIO_InitStruct);
	
}	